Zum Hauptinhalt springen

JSON verstehen

JSON begegnet dir in 42°OS überall: Agents übergeben ihre Ergebnisse als JSON, Webhooks liefern JSON, der Internal Storage Agent liest und schreibt über JSON-Strukturen, Liquid Templates navigieren durch JSON. Wer JSON versteht, versteht wie Daten in einem Workflow fließen.


Was ist JSON?

JSON steht für JavaScript Object Notation. Es ist ein Textformat um strukturierte Daten darzustellen — lesbar für Menschen, verarbeitbar für Maschinen. Heute ist es der Universalstandard für den Datenaustausch zwischen Systemen.

Eine JSON-Struktur ist immer eine von zwei Grundformen: ein Objekt oder ein Array.


Objekte — Schlüssel und Werte

Ein Objekt ist eine Sammlung von Schlüssel-Wert-Paaren, umschlossen von geschweiften Klammern {}:

{
"invoice_number": "RE-2026-042",
"supplier": "Muster GmbH",
"amount": 1190.00,
"paid": false,
"due_date": "2026-04-15"
}

Jeder Schlüssel ist ein String in Anführungszeichen. Der Wert kann verschiedene Typen haben:

TypBeispielBedeutung
String"Muster GmbH"Text, immer in Anführungszeichen
Number1190.00Zahl, ohne Anführungszeichen
Booleantrue / falseWahrheitswert
NullnullKein Wert / leer
Object{...}Verschachteltes Objekt
Array[...]Liste von Werten

Arrays — Listen von Werten

Ein Array ist eine geordnete Liste, umschlossen von eckigen Klammern []:

["Rechnung", "Lieferschein", "Mahnung"]

Arrays können beliebige Werttypen enthalten — auch Objekte:

[
{"position": 1, "bezeichnung": "Beratung", "betrag": 800.00},
{"position": 2, "bezeichnung": "Reisekosten", "betrag": 120.50},
{"position": 3, "bezeichnung": "Materialkosten", "betrag": 269.50}
]

Das ist ein Array aus drei Objekten — die typische Struktur für Rechnungspositionen, Bestellzeilen oder Log-Einträge.


Verschachtelung

Objekte und Arrays können beliebig tief ineinander verschachtelt werden:

{
"invoice_number": "RE-2026-042",
"supplier": {
"name": "Muster GmbH",
"address": {
"street": "Musterstraße 1",
"city": "Bielefeld",
"zip": "33602"
}
},
"positions": [
{"position": 1, "bezeichnung": "Beratung", "betrag": 800.00},
{"position": 2, "bezeichnung": "Reisekosten", "betrag": 120.50}
]
}

Auf verschachtelte Werte greift man über den Pfad zu: supplier.address.city gibt "Bielefeld" zurück. positions[0].betrag gibt 800.00 zurück — [0] ist der erste Eintrag (Arrays beginnen bei 0).


JSON in 42°OS

Nachrichten zwischen Agents

Jede Nachricht die durch einen Workflow fließt, ist ein JSON-Objekt. Wenn ein Agent seinen Output hinzufügt, fügt er neue Schlüssel in dieses Objekt ein — oder verändert bestehende. Das Objekt wächst mit jedem Schritt.

Auf Werte zugreifen

In Liquid Templates greifst du über den Schlüsselnamen auf Werte zu:

{{ invoice_number }}        → RE-2026-042
{{ supplier.name }} → Muster GmbH
{{ positions[0].betrag }} → 800.0

In JavaScript über die Punktnotation oder eckige Klammern:

input.invoice_number          // RE-2026-042
input.supplier.name // Muster GmbH
input.positions[0].betrag // 800.0
input.positions.length // 2

Häufige Fehlerquelle: String vs. Number

{"amount": 1190.00}   // Number — kann direkt gerechnet werden
{"amount": "1190.00"} // String — muss erst umgewandelt werden

Wenn eine Berechnung unerwartet NaN oder einen Fehler liefert, lohnt sich der Blick ob der Wert als String oder Number vorliegt.


JSON validieren

Wenn du dir nicht sicher bist ob dein JSON korrekt aufgebaut ist, kannst du es unter jsonlint.com prüfen. Häufige Fehler: fehlende Anführungszeichen um Schlüssel, Komma nach dem letzten Element, einfache statt doppelter Anführungszeichen.